// 导入路径辅助模块，避免重复引用
const pathImport = require('../helpers/path_import.js');
const { pageHelper, cacheHelper } = pathImport;;
// 导入MobX相关依赖
const { createStoreBindings } = require('../../../../../../miniprogram_npm/mobx-miniprogram-bindings/index');
// 导入缓存管理器Store
const { cacheManagerStore } = require('../../../../store/modules/admin/index.js');

Page({
    /**
     * 页面的初始数据
     */
    data: {},

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: async function (options) {
        // 创建MobX绑定
        this.storeBindings = createStoreBindings(this, {
            store: cacheManagerStore,
            fields: [
                'isLoad', 
                'isAdmin',
                'cacheStats',
                'cacheGroups',
                'showActionSheet',
                'actionItems',
                'currentAction',
                'currentGroup',
                'totalCacheUsage',
                'totalCacheSize'
            ],
            actions: [
                'setPageState',
                'loadCacheStats',
                'clearAllCache',
                'clearGroupCache',
                'clearLowPriorityCache',
                'setCurrentGroup',
                'setShowActionSheet',
                'handleActionClick',
                'showCacheDetails'
            ]
        });
        
        // 检查是否是管理员
        if (!AdminBiz.isAdmin()) {
            pageHelper.showModal('温馨提示', '该功能仅管理员可操作，请先登录管理员账号');
            this.setPageState(true, false);
            return;
        }
        
        // 更新状态
        this.setPageState(true, true);
        
        // 加载缓存统计数据
        await this.loadCacheStats();
    },
    
    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {
        // 清理MobX绑定
        this.storeBindings.destroyStoreBindings();
    },
    
    /**
     * 操作面板显示处理
     */
    showActionSheet: function(e) {
        const group = e.currentTarget.dataset.group;
        this.setCurrentGroup(group);
        this.setShowActionSheet(true);
    },
    
    /**
     * 操作面板项目点击处理
     */
    onActionClick: function(e) {
        const index = e.detail.index;
        this.handleActionClick(index);
    },
    
    /**
     * 关闭操作面板
     */
    onActionCancel: function() {
        this.setShowActionSheet(false);
    },
    
    /**
     * 刷新按钮点击
     */
    onRefreshTap: function() {
        this.loadCacheStats();
    },
    
    /**
     * 全部清理按钮点击
     */
    onClearAllTap: function() {
        pageHelper.showConfirm('确认操作', '此操作将清理所有缓存数据，可能导致短暂的性能下降，确定继续吗？', () => {
            this.clearAllCache();
        });
    },
    
    /**
     * 低优先级清理按钮点击
     */
    onClearLowPriorityTap: function() {
        pageHelper.showConfirm('确认操作', '此操作将清理所有低优先级的缓存数据，确定继续吗？', () => {
            this.clearLowPriorityCache();
        });
    },
    
    /**
     * 单个分组清理按钮点击
     */
    onClearGroupTap: function(e) {
        const group = e.currentTarget.dataset.group;
        if (!group) return;
        
        pageHelper.showConfirm('确认操作', `此操作将清理 ${group} 分组的所有缓存数据，确定继续吗？`, () => {
            this.clearGroupCache(group);
        });
    },
    
    /**
     * 详情按钮点击
     */
    onDetailsTap: function() {
        this.showCacheDetails();
    }
}); 